package org.asiainfo.system.domain.vo;

import java.util.Date;

import org.asiainfo.common.translation.annotation.Translation;
import org.asiainfo.common.translation.constant.TransConstant;
import org.asiainfo.system.domain.SysAnnouncement;
import lombok.Data;
import com.mybatisflex.annotation.TableRef;
import io.github.linpeilie.annotations.AutoMapper;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * 授权管理视图对象 sys_announcement
 *
 * @author dotor-ww
 */
@Data
@AutoMapper(target = SysAnnouncement.class)
@TableRef(SysAnnouncement.class)
public class SysAnnouncementVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Long id;
    /**
     * 业务ID
     */
    private Long busId;
    /**
     * 标题
     */
    private String title;
    /**
     * 内容
     */
    private String msgContent;
    /**
     * 开始时间
     */
    private Date startTime;
    /**
     * 结束时间
     */
    private Date endTime;
    /**
     * 发布人
     */
    private Long sender;
    /**
     * 发布人名称
     */
    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "sender")
    private String senderName;
    /**
     * 优先级（L低，M中，H高）
     */
    private String priority;
    /**
     * 消息类型1:通知公告2:系统消息
     */
    private String msgCategory;
    /**
     * 通告对象类型（USER:指定用户，ALL:全体用户）
     */
    private String msgType;
    /**
     * 发布状态（0未发布，1已发布，2已撤销）
     */
    private String sendStatus;
    /**
     * 发布时间
     */
    private Date sendTime;
    /**
     * 撤销时间
     */
    private Date cancelTime;
    /**
     * 业务类型(email:邮件 bpm:流程 tenant_invite:租户邀请)
     */
    private String busType;
    /**
     * 打开方式(组件：component 路由：url)
     */
    private String openType;
    /**
     * 组件/路由 地址
     */
    private String openPage;
    /**
     * 摘要/扩展业务参数
     */
    private String msgAbstract;
    /**
     * 指定用户
     */
    private String userIds;
    /**
     * 指定用户名称
     */
    @Translation(type = TransConstant.USER_ID_LIST_TO_NAME, mapper = "userIds")
    private List<String> userNames;
    /**
     * 创建部门
     */
    private Long createDept;
    /**
     * 创建人
     */
    private Long createBy;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新人
     */
    private Long updateBy;
    /**
     * 更新时间
     */
    private Date updateTime;
    /**
     * 删除状态（0，正常，1已删除）
     */
    private String delFlag;
    /**
     * 租户ID
     */
    private Long tenantId;
}

